package com.xxtx.trade.sysUser.service;

import com.xxtx.trade.common.util.model.Result;
import com.xxtx.trade.sysUser.dto.*;

import java.util.List;
import java.util.Map;

public interface TradeSysUserService {
    /**
     * （人员）账号注册
     */
    Result userRegister(TradeSysUserDto dto);
    /**
     * 账号登录
     */
    Result userLogin(TradeSysUserDto dto);
    /**
     * 重置密码
     */
    Result sysPassword(TradeSysUserDto dto);

    /**
     *  修改人员设置
     * @param dto
     * @return
     */
    Result<Object> updateUser(TradeSysUserDto dto);

    /**
     * (人员设置列表)
     */
    Result userList(TradeSysUserDto dto);

    /**
     * 启用/禁用（人员设置）
     * @param dto
     * @return
     */
    Result updateLoginState(TradeSysUserDto dto);

    /**
     *  （客户管理）
     * @param dto
     * @return
     */
    Result selectAgentUserList(TradeSysUserDto dto);

    /**
     * 新增客户
     */
    Result inserAgent(TradeSysUserDto dto);
    /**
     * 编辑客户
     */
    Result updateAgent(TradeSysUserDto dto);

    /**
     * 账号列表
     */
    Result accountList(TradeSysUserDto dto);


    /**
     * 用户自己更改自己的密码
     * @param dto
     * @return
     */
    Result updateUSerPassword(TradeSysUserDto dto);


    /**
     * 短信权限
     */
    Result updateSmsState(TradeSysUserDto dto);

    List<Map<String,Object>> agentListOption();

    /**
     * 删除客户信息
     */
    Result agentDelete(TradeSysUserDto dto);


    Result selectAllAgent(TradeSysUserDto dto);

    Result selectAllAgentByAgentId(TradeSysUserDto dto);

    Result selectAgentAllList(TradeSysUserDto dto);


    /******************       抖音链接相关             ************************/

    Result tiktokList(TradeSysRoleDto tradeSysRoleDto);

    Result tiktokInfoList(TradeSysRoleDto tradeSysRoleDto);


    TradeSysRoleDto setTradeSysRoleDto(TradeSysRoleDto dto);

    BaiDuInfoDto setBaiDuInfoDto(TradeSysRoleDto dto);

    KuaiShouInfoDto setKuaiShouDto(TradeSysRoleDto dto);

    Result tiktokPermissionInfoList(TradeSysRoleDto dto);

    /**
     * 腾讯数据获取
     * */
    Result tencentPermissionInfoList(TradeSysRoleDto dto);

    Result baiduPermissionInfoList(TradeSysRoleDto dto);

    Result kuaishouPermissionInfoList(TradeSysRoleDto tradeSysRoleDto);

    Result tiktokInsert(TradeSysRoleDto tradeSysRoleDto);

    Result tiktokUpdate(TradeSysRoleDto tradeSysRoleDto);

    Result tiktokDelete(TradeSysRoleDto tradeSysRoleDto);

    Result selectAlltiktokUrls();

    Result selectPermissionTiktokUrls(TradeSysRoleDto tradeSysRoleDto);

    Result selectPermissionTencentUrls(TradeSysRoleDto tradeSysRoleDto);

    Result selectPermissionBaiduUrls(TradeSysRoleDto tradeSysRoleDto);

    Result nearlyClickUrls();


    void insertDouyingDatas(tiktokInfoDto dto, String info);

//    void insertDouYinData(String imei, String idfa, String oaid, String oaid_md5, String campaign_name, String myName, String info);

    void insertShiPinHaoDatas(TencentInfoDto tencentInfoDto);

    void insertBaiDuDatas(BaiDuInfoDto baiDuInfoDto);

    void insertKuaiShouDatas(KuaiShouInfoDto kuaiShouInfoDto);

    Result getCountData() throws Exception;

    Result getCountDataCondition(Integer type, String condition);

    Result tidyCountDataCondition();

    TencentInfoDto setTradeSysRoleDto(TencentInfoDto dto);

    void insertTiktokPlaywrightCommentLog(PlaywrightCommentLogDto playwrightCommentLogDto);

    void addTiktokPlaywrightUser(PlaywrightUserDto playwrightUserDto);

    void addTiktokPlaywrightComment(PlaywrightCommentDto playwrightCommentDto);

    void deleteExpiredInfo();

    void deleteExpiredRedis();

    void deleteExpiredUrlLog();

    void handleInsertData();

    Result deleteUrl(TradeSysRoleDto tradeSysRoleDto);

    Result selectPermissionKuaiShouUrls(TradeSysRoleDto tradeSysRoleDto);


}
